import axios from 'axios'
import JSONbig from 'json-bigint'
// 对axios进行二次封装
// 1. 设置基地址
axios.defaults.baseURL = 'http://ttapi.research.itcast.cn'

// 2. 添加请求拦截器，补充token信息
axios.interceptors.request.use(function (config) {
  // config: 表示当前请求的配置
  // 如果本地有token信息，就取出来，在这里添加到config上
  const token = localStorage.getItem('tokenStr')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  // Do something before request is sent
  console.log('所有的请求都这里走', config)
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

// 3. 补充transformResponse处理大整数问题
axios.defaults.transformResponse = [function (data) {
  try {
    // 尝试转换，如果是json字符串，就没有回题。
    // 如果不是json字符串，就会到catch中去，直接返回这个数据
    return JSONbig.parse(data)
  } catch (err) {
    console.log(err)
    return data
  }
}]

export default axios
